package com.xh3140.xwidget.dialog.params;


import android.content.Context;
import android.graphics.Typeface;
import android.view.Gravity;

import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Size;

import com.xh3140.xwidget.dialog.callback.ConfigViewCallback;
import com.xh3140.xwidget.dialog.view.ItemView;

/**
 * 列表项目视图属性
 * 每一个属性都有默认的设定值
 * 在创建对话框时这些属性可以自定义修改
 */
public final class ItemParams extends AbstractParams {
  /**
   * 是否被选中
   */
  public boolean checked = false;

  /**
   * 文本
   */
  @Nullable
  public CharSequence text = null;

  /**
   * 文本字体大小 sp
   */
  public float textSize = 16f;

  /**
   * 文本字体颜色 argb
   */
  @ColorInt
  public int textColor = 0xFF8F8F8F;

  /**
   * 文本字体样式
   */
  public int typeface = Typeface.NORMAL;

  /**
   * 文本位置
   */
  public int gravity = Gravity.START | Gravity.CENTER_VERTICAL;

  /**
   * 背景颜色 argb
   */
  @ColorInt
  public int backgroundColor = 0xFFFFFFFF;

  /**
   * 按下状态时的背景颜色 argb
   */
  @ColorInt
  public int pressedBackgroundColor = 0x1F000000;

  /**
   * 内边距
   * 格式：[start, top, end, bottom] px
   */
  @Nullable
  @Size(4)
  public int[] padding = dps2pxs(12, 8, 12, 8);

  /**
   * 配置回调
   * 拥有绝对控制权的回调，它在其他属性配置结束后回调
   * 一般情况不要使用它，除非提供的现有配置属性不满足需求
   */
  @Nullable
  public ConfigViewCallback<ItemView> callback = null;

  public ItemParams(@NonNull Context context) {
    super(context);
  }
}